import 'package:flutter/material.dart';

// 404页面
class NotFoundPage extends StatefulWidget {
  const NotFoundPage({super.key});

  @override
  State<NotFoundPage> createState() => _NotFoundPageState();
}

class _NotFoundPageState extends State<NotFoundPage>
    with SingleTickerProviderStateMixin {
  late AnimationController _animationController;

  @override
  void initState() {
    super.initState();
    // 创建一个循环播放的动画控制器
    _animationController = AnimationController(
      duration: const Duration(seconds: 2),// 动画持续时间
      vsync: this,// 避免动画在页面不可见时执行（如后台运行），提升性能，通常传入 this（需要混入 SingleTickerProviderStateMixin）
    )..repeat(reverse: true); // 循环反转播放
  }

  @override
  void dispose() {
    _animationController.dispose(); // 释放资源
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("404"),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 动画旋转的404文字
            AnimatedBuilder(
              animation: _animationController,
              builder: (context, child) {
                return Transform.rotate(
                  angle: _animationController.value * 2 * 3.14, // 旋转角度
                  child: child,
                );
              },
              child: const Text(
                "404",
                style: TextStyle(
                  fontSize: 60,
                  fontWeight: FontWeight.bold,
                  color: Colors.red,
                ),
              ),
            ),
            const SizedBox(height: 20),
            const Text(
              "页面不存在",
              style: TextStyle(fontSize: 20, color: Colors.grey),
            ),
            const SizedBox(height: 40),
            // 返回首页按钮
            ElevatedButton(
              onPressed: () {
                // 这里可以添加返回首页的逻辑
                Navigator.pop(context); // 返回上一页
              },
              child: const Text("返回"),
            ),
          ],
        ),
      ),
    );
  }
}